#include "Thread.h"

Thread::Thread() {
    thread = 0;
}

Thread::~Thread() { }

int Thread::start() {
    return pthread_create(&thread, 0, start_routine, this);
}

void Thread::exit() {
   pthread_exit(NULL);
}

void *Thread::join() {
    void *resultado;

    pthread_join(thread, &resultado);
    return resultado;
}

void *Thread::start_routine(void *arg) {
    Thread *t = (Thread *) arg;
    void *resultado = t->run();

    return resultado;
}
